<?php
/**
 * Created by PhpStorm.
 * User: edmmss
 * Date: 2019/1/29
 * Time: 09:24
 */

namespace app\modules\entityAttributeValue\controller;

use app\modules\entityAttributeValue\Attribute;
use app\modules\entityAttributeValue\Entity;
use app\modules\entityAttributeValue\Value;
use yii\web\Controller;

class DefaultController extends Controller
{
    /**
     * 实体属性值模式示例
     * 实体属性值模型（Entity-attribute-value EAV）是一种用数据模型描述实体的属性（属性，参数
     * 可以用来形容他们潜在巨大，但实际上将适用于给定的实体的数量是相对较少。 在数学中，这种模式被称为一个稀疏矩阵
     * EAV也被称为对象的属性值的模式，垂直的数据库模型和开放式架构
     *
     * @date   2019/1/29
     * @author edmmss
     * @return bool
     */
    public function actionIndex()
    {
        $colorAttribute = new Attribute('color');
        $colorSilver = new Value($colorAttribute, 'silver');
        $colorBlack = new Value($colorAttribute, 'black');

        $memoryAttribute = new Attribute('memory');
        $memory8Gb = new Value($memoryAttribute, '8GB');

        $entity = new Entity('MacBook Pro', [$colorSilver, $colorBlack, $memory8Gb]);

        echo $entity;
        echo '<hr>';

        return true;
    }
}